package com.xli.ui.module.framemodule.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xli.ui.module.framemodule.entity.FrameModule;
import jakarta.validation.constraints.NotNull;

import java.util.List;

public interface IFrameModuleService extends IService<FrameModule> {

    boolean insert(@NotNull FrameModule frameModule);

    boolean delete(@NotNull Long id);

    boolean update(@NotNull FrameModule frameModule);

    FrameModule find(@NotNull Long id);

    long findCount(@NotNull QueryWrapper<FrameModule> qw);

    List<FrameModule> findList(@NotNull QueryWrapper<FrameModule> qw);

    Page<FrameModule> findList(@NotNull QueryWrapper<FrameModule> qw, @NotNull long current, @NotNull long size);

    List<FrameModule> findModuleListById(@NotNull Long id);

    Page<FrameModule> findModuleListById(@NotNull Long id, @NotNull long current, @NotNull long size);

    List<FrameModule> findModuleListByPid(@NotNull Long pid);

    Page<FrameModule> findModuleListByPid(@NotNull Long pid, @NotNull long current, @NotNull long size);

    Page<FrameModule> findModuleListByPid(@NotNull Long pid, String type, String name, @NotNull long current, @NotNull long size);

    List<FrameModule> findModuleListByUserId(@NotNull Long userId);

    boolean checkModuleRight(@NotNull Long userId, @NotNull Long moduleId);
}
